Software programs may be modified over time. For example, functionality may be added to, removed from, or altered in a software program. The modifications may be to correct programmatic errors in the software program or to implement enhancements to the software program. Requests to modify the software program may be written in a document called a change request.
Software developers may analyze the change request and modify the software program accordingly. One or more software developers may first estimate the degree of effort that may be expanded in order to modify the software program. The degree of effort may be useful, for example, to schedule the implementation of the change request. The degree of effort may also be useful, for example, to provide a customer with a cost estimate for implementing the change request.
To determine the degree of effort, the impact on the software program caused by implementing the change request may be analyzed. The process of determining the impact on the software program is known as impact analysis.
However, the software developer estimating the degree of effort may be inexperienced, unfamiliar with the source code of the software program, only familiar with a limited portion of the source code, or any combination thereof. The software program may have hundreds of thousands of lines of code or even millions of lines of code. Consequently, the estimation of the degree of effort to modify the software program may be difficult to accurately determine.